#include <stdio.h>

int chary() {
char duzaLiczba = 0;
char duzaLiczbaPokaz = 0;

	while (++duzaLiczba > 0){ 
		duzaLiczba = duzaLiczbaPokaz;
	}
	printf("Char (maksimum): %c\n", duzaLiczbaPokaz);

char malaLiczba = 0;
char malaLiczbaPokaz = 0;
		
		while (--malaLiczba < duzaLiczbaPokaz) {
			malaLiczba = malaLiczbaPokaz;			
		}		

	printf("Char (minimum): %c\n", malaLiczbaPokaz);
return 0;
}

int unsignedChar() {

unsigned char duzaLiczba = 0;
unsigned char duzaLiczbaPokaz = 0;

	while (++duzaLiczba > 0) {
		duzaLiczba = duzaLiczbaPokaz;
	}
	printf("Char (maksimum): %c\n", duzaLiczbaPokaz);

unsigned char malaLiczba = 0;
unsigned char malaLiczbaPokaz = 0;
		
		while (--malaLiczba < duzaLiczbaPokaz) {
			malaLiczba = malaLiczbaPokaz;			
		}		

	printf("Char (minimum): %c\n", malaLiczbaPokaz);
return 0;
}

int signedshort() {
signed short int duzaLiczba = 0;
signed short int  duzaLiczbaPokaz = 0;
	while(++duzaLiczba > 0) {
		duzaLiczbaPokaz = duzaLiczba; //zapamiętanie ostatniej liczby
	}	
	
	printf("Maximum signed short %d\n", duzaLiczbaPokaz);

signed short int  malaLiczba = duzaLiczbaPokaz;
signed short int  malaLiczbaPokaz = 0;

	while(--malaLiczba < duzaLiczbaPokaz) {
		malaLiczbaPokaz = malaLiczba;
	}
	printf("Minimum unsigned short int %d\n", malaLiczbaPokaz);
return 0;
}

int signedint() {
signed int duzaLiczba = 0;
signed int  duzaLiczbaPokaz = 0;
	while(++duzaLiczba > 0) {
		duzaLiczbaPokaz = duzaLiczba; //zapamiętanie ostatniej liczby
	}	
	
	printf("Maximum signed int %d\n", duzaLiczbaPokaz);

signed int  malaLiczba = duzaLiczbaPokaz;
signed int  malaLiczbaPokaz = 0;

	while(--malaLiczba < duzaLiczbaPokaz) {
		malaLiczbaPokaz = malaLiczba;
	}
	printf("Minimum singed int %d\n", malaLiczbaPokaz);

return 0;
}

int unsignedint() {
unsigned int duzaLiczba = 0;
unsigned int  duzaLiczbaPokaz = 0;
	while(++duzaLiczba > 0) {
		duzaLiczbaPokaz = duzaLiczba;
	}	
	
	printf("Maximum unsigned %u\n", duzaLiczbaPokaz);

unsigned int  malaLiczba = duzaLiczbaPokaz;
unsigned int  malaLiczbaPokaz = 0;

	while(--malaLiczba < duzaLiczbaPokaz)
	{
		malaLiczbaPokaz = malaLiczba;
	}
	printf("Minimum unsigned %u\n", malaLiczbaPokaz);
return 0;
}

int signedlong() {
signed long int duzaLiczba = 0;
signed long int  duzaLiczbaPokaz = 0;
	while(++duzaLiczba > 0) {
		duzaLiczbaPokaz = duzaLiczba;
	}	
	
	printf("Maximum signed long %ld\n", duzaLiczbaPokaz);

signed long int  malaLiczba = duzaLiczbaPokaz;
signed long int  malaLiczbaPokaz = 0;

	while(--malaLiczba < duzaLiczbaPokaz) {
		malaLiczbaPokaz = malaLiczba;
	}
	printf("Minimum signed long %ld\n", malaLiczbaPokaz);
return 0;
}

int unsignedlongint() {
unsigned long long duzaLiczba = 0;
unsigned long long  duzaLiczbaPokaz = 0;
	while(++duzaLiczba > 0) {
		duzaLiczbaPokaz = duzaLiczba; 
	}	
	
	printf("Maximum unsigned long %lld\n", duzaLiczbaPokaz);

unsigned long int  malaLiczba = duzaLiczbaPokaz;
unsigned long int  malaLiczbaPokaz = 0;

	while(--malaLiczba < duzaLiczbaPokaz) { 
		malaLiczbaPokaz = malaLiczba;
	}
	printf("Minimum unsigned long %ld\n", malaLiczbaPokaz);
return 0;
}

int unsignedShortInt(){
unsigned short int duzaLiczba = 0;
unsigned short int duzaLiczbaPokaz = 0;
//najpierw dodaje 1 do liczby, potem porownuje
	while(++duzaLiczba > 0) {
		duzaLiczbaPokaz = duzaLiczba; 
	}	
	
	printf("Maximum unsigned short %d\n", duzaLiczbaPokaz);

unsigned short int  malaLiczba = duzaLiczbaPokaz;
unsigned short int  malaLiczbaPokaz = 0;

	while(--malaLiczba < duzaLiczbaPokaz) {
		malaLiczbaPokaz = malaLiczba;
	}
	printf("Minimum unsigned short %d\n", malaLiczbaPokaz);

return 0;
}

int main() {

	//unsignedChar();
	unsignedShortInt();
	//chary();	
	signedshort();
	signedint();
	unsignedint();
	signedlong();
	unsignedlongint();
	
return 0;
}
